1. Technical Field
The present invention relates generally to automated customer support and service in a distributed computing environment.
2. Description of the Related Art
Technical support services and programs are designed to diagnose and solve hardware or software problems that users and/or customers encounter as they use computers. As businesses continue to move on-line, distributed computing environments become more complex and, thus, more difficult to troubleshoot. Indeed, entire businesses now desire to connect their critical business systems directly to employees, customers, vendors and other important constituencies. To this end, many internal or external business network applications are now being connected to the Internet""s World Wide Web to make the information accessible from anywhere using conventional browser software.
Traditional technical support centers place their emphasis on internal tracking and productivity tools, such as problem tracking systems. Such xe2x80x9cback endxe2x80x9d systems exist internally to the support organization and are usually transparent to the customer. Although back-end systems aid internal efficiency, they do little for the actual problem resolution process itself. Problem resolution is typically left to telephony-based technologies such as agent-based automatic call distribution (ACD) support centers and intelligent voice response (IVR) devices.
Such techniques attempt to diagnose and address problems on a remote node without actually having the technician travel to that node. The most common method of technical support is still a telephone conversation with tech support personnel. Other known techniques involve a network xe2x80x9cloginxe2x80x9d to the remote node so that the conditions may be evaluated from the technical support center""s viewpoint. The network connection may be used to run a diagnostic program on the remote node, or xe2x80x9cself-helpxe2x80x9d fix-it programs may be downloaded to the remote note and executed there.
With the explosive growth of the Internet, the latter approach has been quite popular. Several companies now provide personal computer (PC) diagnostic technology in the form of diagnostic agents that run on a client machine and that perform certain low-level diagnosis and self-help for the user. Some of these products also return status information to a server, but they are primarily xe2x80x9cclient-centricxe2x80x9d in the sense that the programs are designed to run on a user""s machine in a generally autonomous manner. They implement relatively simple functionality as compared to known server-centric diagnostic tools that are generally used by developers and technicians for application debugging and problem resolution.
Thus, while it is known in the prior art to provide separate client-centric and server-centric PC diagnostic tools, the art has yet to provide an integrated approach to technical support. This problem is solved by the present invention.
It is a primary object of this invention to provide partially or fully automated technical support in a distributed computer environment.
It is another primary object of this invention to provide real-time, interactive technical support and service to personal computer users in a distributed network.
It is still another object of this invention to automate technical support interaction processes in a distributed computer networking environment.
Still another important object of this invention is to provide a universal infrastructure for capturing, aggregating, transforming, analyzing and communicating technical support information.
It is yet another objective of this invention to combine a process of iterative refinement with a process of running remote diagnostics in a novel manner to facilitate automated technical support and service in a personal computer networking environment.
A more general object of this invention is to address and solve computer hardware and software problems typically encountered by users in a computer enterprise environment.
Yet another general object of this invention is to replace and/or augment known client-centric and server-centric technical support methods that have proven to be ineffective, costly or inefficient.
These and other objects of this invention are provided in a method, system and computer program product for automated technical support in a computer network having a client machine and at least one server. One preferred method begins by selecting a diagnostic map useful in gathering diagnostic data for evaluating a given technical problem requiring diagnosis and correction. The diagnostic map encapsulates a set of one or more methods that, upon execution, explore the client machine and gather data. The diagnostic map is then executed by a diagnostic engine to generate a data set indicative of a current operating state of the client machine. This data set is forwarded from the client machine to the server for analysis. Based on the analysis performed at the server node, the data gathering process is repeated at the client machine, iteratively, until given information is available to a user of the client machine to correct the given technical problem.
According to the invention, a given diagnostic data gathering xe2x80x9cmapxe2x80x9d is run at the client machine to collect a data set indicative of a current operating state of a machine, a resource associated with the machine, an application or the like. A given problem solving session between a client machine and a server node (which may or may not include a human operator) involves executing a sequence of such data gathering maps in an iterative manner, directing the user towards a solution to the given technical problem. Preferably, each map encapsulates a specific set of methods and techniques used to automatically explore the computer system and to gather data.
Although a primary use of a map is to gather diagnostic data to solve user hardware and software problems, a map may be used for other purposes such as gathering asset data for inventory, gathering usage statistics for productivity reporting, and the like. Preferably, maps are infinitely variable, and any number of maps may be created and used in the automated system. Maps may be general, gathering data for a variety of uses; alternatively, a given map is very specific, gathering data for one specific purpose. According to another feature of the invention, a relatively generic set of diagnostic maps may be adapted to become xe2x80x9csmarterxe2x80x9d (i.e. more problem-specific) over time as more and more problems are addressed and rectified by the automated system. Thus, the xe2x80x9citerative refinementxe2x80x9d technique as implemented by the automated method and system of the present invention may occur both within a current iterative problem solving session as well as over a given time period as a plurality of such sessions are carried out.
The client machine includes a diagnostic engine for executing the maps. Preferably, a single diagnostic engine is capable of running any map, and maps may be freely copied onto a machine from the network, from disk storage media, from e-mail attachments, and the like. According to a feature of the invention, the xe2x80x9cclientxe2x80x9d piece of the invention may be implemented in a computer program product in a computer-readable medium. The product is executable in the client machine and includes a number of components or elements. In particular, the product includes a set of one or more diagnostic maps, each of which encapsulates a set of one or more methods that, upon execution, are capable of exploring the client machine and gathering data. The computer program product also includes program instruction means responsive to occurrence of a given technical problem requiring diagnosis and correction for initiating an iterative problem solving session using the set of one or more diagnostic maps. In addition, the computer program product includes means operative during the iterative problem solving session for iteratively executing the set of one or more diagnostic maps to generate one or more respective data sets useful in identifying and rectifying the given technical problem.
The server piece of the invention preferably executes in a diagnostic center located remotely from the node under test on which the client piece executes. The server functionality may also be implemented as a computer program, e.g., a program instruction means operative at the server node during the iterative problem solving session for evaluating the one or more respective data sets and in response thereto generating information for use in correcting the given technical problem. In particular, the information may include instructions for refining a given diagnostic map, running a new (but existing) diagnostic map, writing and running a completely new diagnostic map, or the like. The information may also comprise instructions on how to xe2x80x9cfixxe2x80x9d or otherwise address the technical problem.
The foregoing has outlined some of the more pertinent objects and features of the present invention. These objects should be construed to be merely illustrative of some of the more prominent features and applications of the invention. Many other beneficial results can be attained by applying the disclosed invention in a different manner or modifying the invention as will be described. Accordingly, other objects and a fuller understanding of the invention may be had by referring to the following Detailed Description.